In recent years, consumption power of Information and Communication Technology (ICT) system has been increasing, and thus there has been a demand for suppression in consumption power. For example, some supercomputers consume 15 MW or more. In the case of supercomputers having high power efficiency, 6.674 GFlops/W has been achieved. However, to achieve 1 EFlops, consumption power will be as high as 1018/(6.674×109)=150 MW. It is difficult to realize a supercomputer that consumes such high power.
To optimize programs from the point of view of reducing consumption power, a technique has been developed to identify a hot spot where a program consumes high power. Identifying a hot spot makes it possible to reduce the consumption power of the program by tuning the hot spot. For example, in one of techniques to identify hot spots, consumption power is sampled at fixed time intervals, and a consumption power profile is produced with reference to information on operation programs that have been sampled at similar time intervals thereby identifying a hot spot.
FIG. 7 is a diagram illustrating an example of a consumption power profile. In FIG. 7, consumption power of a function of a program and the ratio of consumption power of the function to the total consumption power of the program are illustrated for each function. As illustrated in FIG. 7, a function “funcX” of a module “programX” is “160 J (Joule)” in consumption power, and the ratio of the consumption power to the total consumption power of the program is “80%”. Thus, the function “funcX” is a hot spot of consumption power.
To produce a consumption power profile, consumption power is sampled at fixed time intervals. However, the sampling of consumption power at fixed time intervals does not allow an accurate estimation of consumption power. FIG. 8A is a diagram for illustrating sampling at fixed time intervals. In the example illustrated in FIG. 8A, consumption power is acquired by generating an interrupt at fixed time intervals, and the consumption power is calculated for each function based on information about the function being executed when the interrupt is generated. In FIG. 8A, a horizontal axis indicates time, and a vertical axis indicates power. The power is expressed in units of 3 (Joules).
In FIG. 8A, consumption power of a function A is represented in a highlighted manner, while consumption power of a function B is represented without being highlighted. As illustrated in FIG. 8A, the consumption power is 12 J for both functions A and B. However, in this example illustrated in FIG. 8A where the consumption power is sampled at fixed time intervals, consumption power is measured as 7 J at first sampling. At this sampling point when the first sampling is performed, the function A is being executed, and thus it is regarded that the consumption power of the function A is 7 J.
At second sampling, the consumption power is measured as 8 J. At this sampling point, the function A is also being executed in the present example, and thus the consumption power of the function A is regarded as 7 J+8 J=15 J. At third sampling, the consumption power is measured as 6 J. At this sampling point, the function B is being executed in the present example, and thus the consumption power of the function B is regarded as 6 J. At fourth sampling, the consumption power is measured as 3 J. At this sampling point, the function A is being executed in the present example, and thus the consumption power of the function A is regarded as 15 J+3 J=18 J.
Although the actual consumption power is 12 J for both functions A and B, the consumption power estimated via sampling measurement performed four times is 18 J for the function A and 6 J for the function B, and thus the estimated consumption power is not accurate.
To handle the above situation, in one of known techniques, consumption power is sampled each time a fixed amount of power is consumed. FIG. 8B is a diagram illustrating an example in which sampling is performed each time a fixed amount of power is consumed. In FIG. 8B, as with the case illustrated in FIG. 8A, the actual consumption power is 12 J for both functions A and B.
In this example in which sampling is performed each time power of 6 J is consumed as illustrated in FIG. 8B, the amount of consumption power of the function A is measured as 6 J because the function A is being executed when the first-time sampling is performed. When second-time sampling is performed, the function B is being executed, and thus the consumption power of the function B is measured as 6 J.
The function B is being executed when third-time sampling is performed, and thus the consumption power of the function B is estimated as 6 J+6 J=12 J. The function A is being executed when fourth-time sampling is performed, and thus the consumption power of the function A is estimated as 6 J+6 J=12 J.
As described above, in the case where sampling is performed each time a particular fixed amount of power is consumed, that is, in the case where consumption power-based sampling is performed, more accurate estimation of consumption power of each function is possible compared with the case where sampling is performed at fixed time intervals, that is, compared with the case where time-based sampling is performed. However, it is difficult to generate an interrupt for sampling each time a particular fixed amount of power is consumed. In view of the above, to achieve sampling such that the amount of consumption power measured at each sampling point is as close to a fixed value as possible, it is known to perform event-based sampling in which sampling is performed in response to an occurrence of an event closely related to consumption power.
FIG. 9 is a diagram illustrating an example in which event-based sampling is performed. In this example illustrated in FIG. 9, when an event occurs 1000 times, an overflow interrupt occurs, and consumption power and data about a program being executed are acquired.
In one of known techniques, the value of the number of times inputs are sensed per unit time is measured as well as a process is performed according to an instruction issued by a program, and an idle state is detected by comparing the measured value to a value which has been measured in an idle state. In response to detecting the idle state, an operation mode is switched from a normal operation mode to a power saving mode thereby achieving an improvement in efficiency in saving power.
In another one of known techniques, the difference between processing power of an assigned process and idle power is integrated with respect to time taken for the process, and based on incremental processing power obtained as a result of the time integration, a proper combination of servers to which the process is assigned is selected thereby making it possible to select a combination of servers that results in a significant reduction in power consumption.
In another one of known techniques, the amount of power consumed when each event occurs is measured in advance, and power consumed by a program is calculated from the beforehand measured amount of consumption power and the number of times each event occurs during an execution of the program thereby making it possible to calculate a reasonable value of power consumed, in each program, by an information processing apparatus.
Descriptions of related techniques may be found, for example, in Japanese Laid-open Patent Publication No. 6-19592, Japanese Laid-open Patent Publication No. 2012-133505, and International Publication Pamphlet No. WO2012/001779.
A description of related techniques may be found also in “Sampling-based Power-Measurement Method”, Miyuki Ono, Masao Yamamoto, and Kohta Nakashima, HPCS2016-031.